home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / blit.arc / TESTSUB.C < prev    next >
Encoding:
C/C++ Source or Header  |  1985-06-10  |  6.7 KB  |  207 lines

  1. /*
  2.  * NAME:         TEST
  3.  *
  4.  * DESCRIPTION: TEST THE LAYER CODE.
  5.  *
  6.  * SYNOPSIS:     TEST (TESTNO, SIZE)
  7.  *              INT      TESTNO;
  8.  *              INT      SIZE;
  9.  *
  10.  * GLOBALS:      NONE.
  11.  *
  12.  * CALLS:        LAYERS      (LAYERS.C)
  13.  *              NEWLAYER     (NEWLAYER.C)
  14.  *              LLINE        (LLINE.C)
  15.  *              HILBERT      (HILBERT.C)
  16.  *              SIERPINSKI   (SIERPINSKI.C)
  17.  *              PLOT         (PLOT.C)
  18.  *              LBLT         (LBLT.C)
  19.  *              LBITBLT      (LBITBLT.C)
  20.  *              UPFRONT      (UPFRONT.C)
  21.  *              DELLAYER     (DELLAYER.C)
  22.  *
  23.  * CALLED BY:    MAIN  (JERQ.C)
  24.  */
  25. #INCLUDE "LAYERS.H"
  26.  
  27. EXTERN STRUCT BITMAP  *DISPLAY;
  28.  
  29. UNSIGNED SHORT SPIRAL[] = {
  30.    0XFFFF, 0X8001, 0XBFFD, 0XA005,
  31.    0XAFF5, 0XA815, 0XABD5, 0XAA55,
  32.    0XAA55, 0XABD5, 0XA815, 0XAFF5,
  33.    0XA005, 0XBFFD, 0X8001, 0XFFFF,
  34.    0X0000
  35. };
  36. UNSIGNED SHORT PATTERN[] = {
  37.    0X3333, 0XCCCC, 0X3333, 0XCCCC,
  38.    0X3333, 0XCCCC, 0X3333, 0XCCCC,
  39.    0X3333, 0XCCCC, 0X3333, 0XCCCC,
  40.    0X3333, 0XCCCC, 0X3333, 0XCCCC,
  41.    0X0000
  42. };
  43. UNSIGNED SHORT HT1[] = {
  44.    0X5555, 0X5555, 0X5555, 0X5555,
  45.    0X5555, 0X5555, 0X5555, 0X5555,
  46.    0X5555, 0X5555, 0X5555, 0X5555,
  47.    0X5555, 0X5555, 0X5555, 0X5555,
  48.    0X0000
  49. };
  50. UNSIGNED SHORT HT2[] = {
  51.    0XFFFF, 0X0000, 0XFFFF, 0X0000,
  52.    0XFFFF, 0X0000, 0XFFFF, 0X0000,
  53.    0XFFFF, 0X0000, 0XFFFF, 0X0000,
  54.    0XFFFF, 0X0000, 0XFFFF, 0X0000,
  55.    0X0000
  56. };
  57. UNSIGNED SHORT HT3[] = {
  58.    0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF,
  59.    0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF,
  60.    0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF,
  61.    0XFFFF, 0XFFFF, 0XFFFF, 0XFFFF,
  62.    0X0000
  63. };
  64.  
  65. STRUCT POINT    TP1 = {20, 42};
  66. STRUCT POINT    TPA = {22, 22};
  67. STRUCT POINT    TPB = {22, 02};
  68. STRUCT POINT    TPC = {42, 02};
  69. STRUCT POINT    TPD = {42, 22};
  70. STRUCT POINT    TPE = {42, 42};
  71. STRUCT POINT    TPF = {22, 42};
  72. STRUCT POINT    TPG = {02, 42};
  73. STRUCT POINT    TPH = {02, 22};
  74. STRUCT POINT    TPI = {02, 02};
  75. STRUCT POINT STARTP = {10, 10};
  76. STRUCT POINT   ENDP = {60, 60};
  77.  
  78. STRUCT RECTANGLE   TRX = {{00, 00}, {256, 256}};
  79. STRUCT RECTANGLE   TRY = {{00, 00}, {256, 256}};
  80. STRUCT RECTANGLE   TRZ = {{00, 00}, {256, 256}};
  81.  
  82. STRUCT RECTANGLE     TR = {{16, 32}, {32, 48}};
  83. STRUCT RECTANGLE    TR1 = {{05, 10}, {40, 50}};
  84. STRUCT RECTANGLE    TR2 = {{10, 40}, {50, 60}};
  85. STRUCT RECTANGLE    TR3 = {{25, 30}, {60, 55}};
  86. STRUCT RECTANGLE   TRLA = {{01, 01}, {60, 60}};
  87. STRUCT RECTANGLE    TRA = {{22, 22}, {38, 38}};
  88. STRUCT RECTANGLE    TRB = {{22, 02}, {38, 18}};
  89. STRUCT RECTANGLE    TRC = {{42, 02}, {58, 18}};
  90. STRUCT RECTANGLE    TRD = {{42, 22}, {58, 38}};
  91. STRUCT RECTANGLE    TRE = {{42, 42}, {58, 58}};
  92. STRUCT RECTANGLE    TRF = {{22, 42}, {38, 58}};
  93. STRUCT RECTANGLE    TRG = {{02, 42}, {18, 58}};
  94. STRUCT RECTANGLE    TRH = {{02, 22}, {18, 38}};
  95. STRUCT RECTANGLE    TRI = {{02, 02}, {18, 18}};
  96.  
  97. STRUCT BITMAP TESTB = {PATTERN, 1, {{16, 32}, {32, 48}}, 0};
  98. STRUCT BITMAP  HB1 = {HT1, 1, {{ 0, 0}, {WORDSIZE, WORDSIZE}}, 0};
  99. STRUCT BITMAP  HB2 = {HT2, 1, {{ 0, 0}, {WORDSIZE, WORDSIZE}}, 0};
  100. STRUCT BITMAP  HB3 = {HT3, 1, {{ 0, 0}, {WORDSIZE, WORDSIZE}}, 0};
  101. STRUCT BITMAP  HBA = {SPIRAL, 1, {{ 0, 0}, {WORDSIZE, WORDSIZE}}, 0};
  102.  
  103. STRUCT LAYER  *DRAWP;
  104.  
  105. STRUCT LAYER  *TL1;
  106. STRUCT LAYER  *TL2;
  107. STRUCT LAYER  *TL3;
  108. STRUCT LAYER  *TLA;
  109.  
  110. TEST (TESTNO, SIZE)
  111. INT     TESTNO;
  112. INT    SIZE;
  113. {
  114.    INT      I;
  115.  
  116.    STRUCT LAYER    *NEWLAYER ();
  117.  
  118.     LAYERS ();
  119.    SWITCH (TESTNO) {
  120.        DEFAULT:
  121.         CASE 1:
  122.            TL1 = NEWLAYER (DISPLAY, TRX, NULL);
  123.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  124.            STARTP.X = 110;
  125.            STARTP.Y = 110;
  126.            FOR (I = 10; I <= 210; I += 5) {
  127.                ENDP.X = I;
  128.                ENDP.Y = 10;
  129.                LLINE (TL1, STARTP, ENDP, S);
  130.            }
  131.            FOR (I = 10; I <= 210; I += 5) {
  132.                ENDP.X = 210;
  133.                ENDP.Y = I;
  134.                LLINE (TL1, STARTP, ENDP, S);
  135.            }
  136.            FOR (I = 10; I <= 210; I += 5) {
  137.                ENDP.X = I;
  138.                ENDP.Y = 210;
  139.                LLINE (TL1, STARTP, ENDP, S);
  140.            }
  141.            FOR (I = 10; I <= 210; I += 5) {
  142.                ENDP.X = 10;
  143.                ENDP.Y = I;
  144.                LLINE (TL1, STARTP, ENDP, S);
  145.            }
  146.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  147.            BREAK;
  148.         CASE 2:
  149.            DRAWP = NEWLAYER (DISPLAY, TRY, NULL);
  150.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  151.            HILBERT (4, 128);
  152.            BREAK;
  153.         CASE 3:
  154.            DRAWP = NEWLAYER (DISPLAY, TRZ, NULL);
  155.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  156.            SIERPINSKI (4, 128);
  157.            BREAK;
  158.         CASE 4:
  159.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  160.            TL1 = NEWLAYER (DISPLAY, TR1, &HB1);
  161.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  162.            TL2 = NEWLAYER (DISPLAY, TR2, &HB2);
  163.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  164.            TL3 = NEWLAYER (DISPLAY, TR3, &HB3);
  165.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  166.            LBLT (TL1, &TESTB, TR, NULL, TR.ORIGIN, S);
  167.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  168.            LBITBLT (TL1, TR, TL2, TP1, NULL, S);
  169.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  170.            UPFRONT (TL1);
  171.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  172.            UPFRONT (TL2);
  173.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  174.            UPFRONT (TL3);
  175.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  176.            DELLAYER (TL2);
  177.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  178.            DELLAYER (TL1);
  179.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  180.            DELLAYER (TL3);
  181.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  182.            BREAK;
  183.         CASE 5:
  184.            TLA = NEWLAYER (DISPLAY, TRLA, NULL);
  185.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  186.            LBLT (TLA, &HBA, HBA.RECT, NULL, TPA, S);
  187.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  188.            LBITBLT (TLA, TRA, TLA, TPB, NULL, S);
  189.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  190.            LBITBLT (TLA, TRA, TLA, TPC, NULL, S);
  191.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  192.            LBITBLT (TLA, TRA, TLA, TPD, NULL, S);
  193.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  194.            LBITBLT (TLA, TRA, TLA, TPE, NULL, S);
  195.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  196.            LBITBLT (TLA, TRA, TLA, TPF, NULL, S);
  197.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  198.            LBITBLT (TLA, TRA, TLA, TPG, NULL, S);
  199.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  200.            LBITBLT (TLA, TRA, TLA, TPH, NULL, S);
  201.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  202.            LBITBLT (TLA, TRA, TLA, TPI, NULL, S);
  203.            PLOT (DISPLAY, DISPLAY -> RECT, SIZE);
  204.            BREAK;
  205.    }
  206. }
  207.